﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MemoryDuosRankings
{
    public class Ranking : IComparable<Ranking>
    {
        private DateTime _fin;
        public int ID { get; set; }
        public DateTime FechaInicio { get; set; }
        public DateTime FechaFin { get { return _fin; } set { _fin = value; } }
        public TimeSpan Tiempo { get; set; }
        public String Galería { get; set; }
        public int Nivel { get; set; }
        public List<Tuple<int, int, int>> acertadas;
        public Ranking(DateTime inicio, string galeria, int nivel)
        {
            FechaInicio = inicio;
            Galería = galeria;
            Nivel = nivel;
            acertadas = new List<Tuple<int, int,int>>();
        }

        public int CompareTo(Ranking b)
        {

            TimeSpan dif1 = Tiempo;
            TimeSpan dif2 = b.Tiempo;
            int comparacion = dif1.CompareTo(dif2);
            return comparacion;
        }
        public static bool operator >(Ranking a, Ranking b)
        {
            return a.CompareTo(b) > 0;
        }

        public static bool operator >=(Ranking a, Ranking b)
        {
            return a.CompareTo(b) >= 0;
        }
        public static bool operator <(Ranking a, Ranking b)
        {
            return a.CompareTo(b) < 0;
        }
        public static bool operator <=(Ranking a, Ranking b)
        {
            return a.CompareTo(b) <= 0;
        }

        public override String ToString()
        {

            return String.Format("{0} Duración: {1} segundos", FechaFin.ToString("MM/dd/yy H:mm"), Math.Round((double)(FechaFin - FechaInicio).TotalSeconds,2));
        }
        public  String ToRTFString() {

            return String.Format("\b {0} Duración: \b {1} segundos", FechaFin.ToString("MM/dd/yy H:mm"), Math.Round((double)(FechaFin - FechaInicio).TotalSeconds, 2));
        }
    }
}
